package com.example.vue_shop.components.role.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.vue_shop.components.role.entity.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author lipengwei
 */
@Mapper
public interface RoleMapper extends BaseMapper<Role> {

    /**
     * 获取角色的权限Id.
     * @param roleId 角色Id
     * @return List<Integer>
     */
    List<Integer> getAllRightsId(@Param("roleId") int roleId);

    /**
     * 删除角色的权限.
     * @param roleId 角色Id
     * @param rightsId 权限Id
     */
    void delRoleRights(@Param("roleId") int roleId, @Param("rightsId") int rightsId);

    /**
     * 角色添加权限.
     * @param roleId 角色Id
     * @param rightsId 权限Id
     */
    void addRoleRights(@Param("roleId") int roleId,
                       @Param("rightsId") int rightsId);

    /**
     * 获取角色权限中间表对象.
     * @param roleId 角色Id
     * @param rightsId 权限Id
     * @return Map<String, Object>
     */
    Map<String, Object> getRoleRights(@Param("roleId") int roleId,
                                      @Param("rightsId") int rightsId);

    /**
     * 获取角色对象.
     * @param userId 用户id
     * @return Role
     */
    Role getRole(@Param("userId") int userId);

}
